//#include <iostream>
//#include<vector>
//using namespace std;
//
//// vector<vector<int>> vis;
//int m, n;
//void dfs(vector<vector<int>>& grid, vector<vector<int>>& vis, int i, int j, int& max)
//{
//    if (grid[i][j] != 1)   return;
//    if (vis[i][j] == 1)   return;
//    vis[i][j] = 1;
//    max++;
//
//    if (i - 1 >= 0)  dfs(grid, vis, i - 1, j, max);
//    if (i + 1 < vis.size())  dfs(grid, vis, i + 1, j, max);
//    if (j - 1 >= 0)  dfs(grid, vis, i, j - 1, max);
//    if (j + 1 < vis[0].size())  dfs(grid, vis, i, j + 1, max);
//
//}
//
//int main() {
//    vector<vector<int>> grid = { {1,1,1},{0,0,0},{1,0,1} };
//    m = grid.size(), n = grid[0].size();
//    vector<vector<int>> vis(m, vector<int>(n));
//    int max = 0;
//    int ret = 0;
//
//    for (int i = 0; i < m; i++)
//    {
//        for (int j = 0; j < n; j++)
//        {
//            if (grid[i][j] == 1 && vis[i][j] == 0)
//            {
//                dfs(grid, vis, i, j, max);
//                if (max > ret) ret = max;
//                max = 0;
//            }
//        }
//    }
//    cout << ret;
//    return ret;
//}
